import pandas as pd
import os

def merge_csv_with_pandas(file_list, output_file):
    """
    使用 Pandas 库合并多个 CSV 文件。

    参数:
    file_list (list): 包含待合并CSV文件名的列表。
    output_file (str): 合并后输出的CSV文件名。
    """
    try:
        # 创建一个空列表来存放每个文件读取后的 DataFrame
        df_list = []

        print("开始合并文件...")

        for file in file_list:
            if os.path.exists(file):
                print(f"正在读取文件: {file}")
                # 读取CSV文件并添加到列表中
                # 使用 encoding='utf-8-sig' 可以避免中文乱码或文件开头的 BOM 问题
                df_list.append(pd.read_csv(file, encoding='utf-8-sig'))
            else:
                print(f"警告: 文件 '{file}' 不存在，已跳过。")

        if not df_list:
            print("错误: 没有任何文件被读取，无法合并。")
            return

        # 使用 concat 函数将列表中的所有 DataFrame 合并成一个
        # ignore_index=True 会重新生成合并后 DataFrame 的索引
        combined_df = pd.concat(df_list, ignore_index=True)

        # 将合并后的 DataFrame 保存为新的 CSV 文件
        # index=False 表示在输出的文件中不包含 DataFrame 的索引列
        combined_df.to_csv(output_file, index=False, encoding='utf-8-sig')

        print(f"\n合并完成！文件已成功保存为: {output_file}")

    except Exception as e:
        print(f"合并过程中发生错误: {e}")

# --- 主程序 ---
if __name__ == "__main__":
    # 1. 定义你要合并的CSV文件列表
    files_to_merge = ['wuhan_price_data_with_coords_1_cleaned.csv', 'wuhan_price_data_with_coords_2_cleaned.csv', 'wuhan_price_data_with_coords_3_cleaned.csv']

    # 2. 定义合并后输出的文件名
    output_filename = 'wuhan_price.csv'

    # 3. 调用合并函数
    merge_csv_with_pandas(files_to_merge, output_filename)